Attached you'll find csg.cpp with an improved intersection routine for
CSG-Intersection objects (together with two small but necessary
changes in Union- and Merge-intersection).
To use this version of csg.cpp you must add a new define
#define CSG_SIBLING_IGNORE_FLAG 0x2000000L /*AKA: csg internal flag*/
to objects.h.
I've checked it with each scene file in the distribution that contains
intersection and/or difference objects and it should be ok now.
Bad News: Almost no difference for benchmark.pov (but see my reply to
a post of Christoph Horman in povray.programming).
Below you'll find some timings for my two private builds
- POV-L1R: almost original (just changes to compile)
- POV-L2R: improved CSG-Intersection (1st fixed version)
The files below were traced with [640x480, AA0.3] (AA being switched
off due to focal blur for chess2.pov).
Values are PPS / totaltime in sec.
POV-L1R POV-L2R
=====================================================================
advanced/chess2.pov: 1616 / 186 2287 / 134
advanced/grenadine.pov: 2145 / 143 2877 / 107
advanced/whiltile.pov: 7333 / 42 8474 / 36
incdemo/shapes.pov: 8533 / 36 10108 / 30
Andreas
Post a reply to this message
Attachments:
Download 'csg.cpp.txt' (28 KB)
|